/*
 * iteAiLib.h
 *
 *  Created on: 2025 08 01
 *      Author: 刘宏伟
 */

#ifndef SRC_IETAILIB_H_
#define SRC_IETAILIB_H_

#ifdef __cplusplus
extern "C" {
#endif

#include "global.h"

struct AimParam
{
    int mode;           //0-normal 1-interrupt 2-DMA
    int sampleRate;     //采样率Hz
    int interruptRate;  //抽样频率,Hz，模式1抽样中断有效
    int filtWindow;     //滤波窗口个数，模式1、2有效 取值范围1-32
    int range[16];       //量程，0：±10 1：±2.5 2：±5
    int reserve3;       //备用
};

/* 定义中断回调函数类型 */
typedef void (*IrqCallbackFunction)(double *data);
/* 定义 DMA 回调函数类型 */
typedef void (*DmaCallbackFunction)(uint8_t *data);

/********************************************************
                  AI控制接口定义
*********************************************************/
int  AIMOpen(int moduleType);

int  AIMInit(struct AimParam aimParam);

int  AIMRead(int channel, unsigned int *data);

int  AIMReadReal(int channel, int vorc, double *data); // 0: 电压单位, V; 1: 电流单位, mA

int  AIMClose();

int  AIMGetDrvVer();

int  AIMGetFpgaVer();

int  AIMGetLibVer();

/* 注册中断回调函数 */
void registerIrqCallback(IrqCallbackFunction callback);
/* 注册 DMA 回调函数 */
void registerDmaCallback(DmaCallbackFunction callback);

#ifdef __cplusplus
}
#endif
#endif /* SRC_IETAILIB_H_ */

/*
统一配置
1、采样频率 

模式一 主动采集
FPGA 开放滤波窗口 评估开窗长度 -孟确认

模式二 定时中断
FPGA 配置中断频率
开放滤波窗口     -孟确认

模式三 DMA传输
1、配置采样率

转速
取两个沿之间的间隔，配置中断取样
驱动留参数
-齿盘齿数
主动调用 分钟为单位

SOE

AC模块
（1）ai复用模式2 需要加一个AD值接口
（2）硬件频率测量-FPGA数脉冲 驱动直接拿（给整数）
（3）ao输出
（4）标定接口 -孟确认 提供文件格式的标定接口

PT100
直接读温度值 
标定接口
*/
